The present invention relates to an electronic ignition control system using a microcomputer for controlling the ignition of the internal combustion engine.
In an electronic ignition control system using a microcomputer, as described in detail in Japanese Patent Laid-Open Publication No. 193766/82, the energization of the ignition coil is controlled by computing an optimum ignition timing and the time of energization on the basis of data relating to the operating conditions including engine revolutions such as the engine rotational speed, amount of intake air, temperature of cooling water and the battery voltage of the internal combustion engine. In order to realize the ignition timing and the energization time thus computed, it is necessary to start energization at a predetermined crank angle corresponding to the energization time and cut off the energization at a predetermined crank angle corresponding to the ignition timing. There would be posed no problem if it were possible to detect the rotational angle of the crankshaft at a given moment to produce an ignition signal. The mechanical limitations (number of teeth) of the angle sensor for detecting the crank angle or the limitation of the processing time of the microcomputer, however, makes it impossible to detect and control the crank angle at a given moment. Actually, therefore, intervals of a definite number of angle signals are converted into time and interpolated to determine the crank angle, thereby controlling the energization of the ignition coil.
An ignition control system conventionally designed for this purpose will be explained below with reference to the timing chart of FIG. 9.
In FIG. 9, (a) represents a reference angle signal generated at each 180.degree. of crank angle (hereinafter referred to as "CA"), (b) an angle signal generated for each 30.degree. of CA, (c) an interruption by the angle signal (I.C.I processing), (e) a time difference .DELTA.t between an offset value set in an output compare register and a free-running counter, (f) an ignition signal and (g) start of ignition.
In starting the energization, the angle remaining from the input timing of the angle signal (n+2) immediately before the energization start time computed to the energization start time is converted into a length of time by the prevailing engine speed. An offset value corresponding to the resulting time length is set in an output compare register in the microcomputer, and an output flag is set to "1" at the same time. The value set in the output compare register is compared with the value on the free-running counter which runs free and keeps counting the time. When these two values come to coincide with each other, that is, when a time length corresponding to the offset value has elapsed, the ignition signal (f) is raised to "high" level in accordance with the output flag thereby to start energization of the ignition coil.
In cutting off the energization, the angle remaining from the input time of the angle signal (n+4) immediately before the ignition timing to the ignition timing is converted into a length of time in similar manner, and the offset value corresponding to the particular time length is set in the output compare register while at the same time setting the output flag to "0". When a time length corresponding to the offset value thus set has elapsed, the ignition signal (f) is reduced to "low" level in accordance with the output flag thereby to cut off the energization of the ignition coil. At the time of cut-off of energization, the ignition plug is fired.
As explained above, the conventional control systems require a computation which must be executed by interruption each time of input of an angle signal, and this complicated computation processes at the time of interruption increases a program load. If the engine stalls immediately after the ignition signal (f) is raised to "high" to start energization, the angle signal (n+4) for cutting off the energization fails to be input, and therefore the ignition coil continues to be energized, often causing such troubles as overheating or burning of the ignition coil and the power transistor. Further, in view of the fact that the angle remaining from the input time of the angle signal to the time of energization start is converted into a length of time on the basis of the rotational speed of the engine determined from the intervals of generation (T180) of a reference angle signal, the rotational speed determined from the intervals of the reference angle signal is considerably displaced from the actual rotational speed at about the time of energization start under an abrupt acceleration such as in the case of racing. As a result, the energization start time is delayed and it becomes impossible to secure the time for energization of the ignition coil, and an accurate ignition fails.
FIG. 10 is a characteristic diagram simulating the energization time for abrupt acceleration under no load shown as an example of failure to secure the energization time.
In FIG. 10, the abscissa represents the number of ignitions after abrupt start of acceleration, character Ne the engine rotational speed, character A an energization angle obtained normally for the particular engine rotational speed (the angle of engine rotation during energization of the ignition coil), and character B a value obtained by simulating the transient energization angle for abrupt acceleration. This indicates that the energization angle B for abrupt acceleration under no load is extremely reduced after several ignitions following the start of acceleration, and in an extreme case, the energization angle becomes negative, that is, the ignition coil may actually fail to be energized.